package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @desc AddAchievementBusinessHandleComReqDto
 * @使用场景
 */
@Data
public class AddAchievementBusinessHandleComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 成果类型ID
     */
    @NotNull(message = "成果类型ID不能为空")
    @ApiModelProperty("成果类型ID")
    private String achievementTypeId;

    /**
     * 成果类型编号
     */
    @NotNull(message = "成果类型编号不能为空")
    @ApiModelProperty("成果类型编号")
    private String achievementTypeNumber;

    /**
     * 成果类别ID
     */
    @ApiModelProperty("成果类别ID")
    private String achievementCategoryId;

    /**
     * 成果类别编号
     */
    @ApiModelProperty("成果类别编号")
    private String achievementCategoryNumber;

    /**
     * 成果等级ID
     */
    @ApiModelProperty("成果等级ID")
    private String achievementGradeId;

    /**
     * 成果等级编号
     */
    @ApiModelProperty("成果等级编号")
    private String achievementGradeNumber;

    /**
     * 成果业务等级ID
     */
    @ApiModelProperty("成果业务等级ID")
    private String achievementBusinessGradeId;

    /**
     * 成果业务等级编号
     */
    @ApiModelProperty("成果业务等级编号")
    private String achievementBusinessGradeNumber;

    /**
     * 成果库类型 RESERVE_WAREHOUSE:预备库 OFFICIAL_LIBRARY:正式库
     */
    @NotNull(message = "成果库类型不能为空")
    @ApiModelProperty("成果库类型")
    private String achiveLibraryType;

    /**
     * 版权归属对象类型编码 ORGANIZATION:组织 DEPARTMENT:部门 PERSONAL:个人
     */
    @NotNull(message = "版权归属对象类型编码不能为空")
    @ApiModelProperty("版权归属对象类型编码")
    private String copyrightObjectTypeCode;

    /**
     * 版权归属对象名称
     */
    @NotNull(message = "版权归属对象名称不能为空")
    @ApiModelProperty("版权归属对象名称")
    private String copyrightObjectName;

    /**
     * 版权归属对象ID
     */
    @NotNull(message = "版权归属对象ID不能为空")
    @ApiModelProperty("版权归属对象ID")
    private String copyrightObjectId;

    /**
     * 是否开启转化成果 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否开启转化成果不能为空")
    @ApiModelProperty("是否开启转化成果")
    private String isUseConversion;

    /**
     * 是否标志性成果 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否标志性成果不能为空")
    @ApiModelProperty("是否标志性成果")
    private String isSymbolicAchievements;

    /**
     * 成果编号
     */
    @NotNull(message = "成果编号不能为空")
    @ApiModelProperty("成果编号")
    private String achievementNumber;

    /**
     * 成果名称
     */
    @NotNull(message = "成果名称不能为空")
    @ApiModelProperty("成果名称")
    private String achievementName;

    /**
     * 成果介绍
     */
    @ApiModelProperty("成果介绍")
    private String achievementDesc;

    /**
     * 成果补充介绍
     */
    @ApiModelProperty("成果补充介绍")
    private String achievementAddDesc;

    /**
     * 相关文号
     */
    @ApiModelProperty("相关文号")
    private String relatedDocument;

    /**
     * 授予单位
     */
    @ApiModelProperty("授予单位")
    private String awardedUnit;

    /**
     * 授予时间
     */
    @NotNull(message = "授予时间不能为空")
    @ApiModelProperty("授予时间")
    private Date awardedTime;

    /**
     * 有效期结束时间
     */
    @ApiModelProperty("有效期结束时间")
    private Date validEndTime;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 业绩责任部门ID
     */
    @NotNull(message = "业绩责任部门ID不能为空")
    @ApiModelProperty("业绩责任部门ID")
    private String dutyDeptId;

}
